using System;
using System.Collections.Generic;

namespace TerritoryGame.Application.Dtos
{
    public class UserLevelDto
    {
        public Guid UserId { get; set; }
        public string Username { get; set; } = string.Empty;
        public int CurrentLevel { get; set; }
        public int CurrentExperience { get; set; }
        public int TotalExperience { get; set; }
        public int ExperienceRequiredForNextLevel { get; set; }
        public double LevelProgress { get; set; } // 当前等级进度百分比
        public string CurrentTitle { get; set; } = string.Empty;
        public List<string> UnlockedTitles { get; set; } = new List<string>();
        public DateTime LastLevelUpTime { get; set; }
    }
    
    public class AddExperienceDto
    {
        public Guid UserId { get; set; }
        public int Experience { get; set; }
        public string Reason { get; set; } = string.Empty; // 获得经验值的原因
    }
    
    public class ChangeTitleDto
    {
        public Guid UserId { get; set; }
        public string NewTitle { get; set; } = string.Empty;
    }
    
    public class LevelUpResultDto
    {
        public bool LeveledUp { get; set; }
        public int NewLevel { get; set; }
        public string? NewTitle { get; set; }
        public int ExperienceGained { get; set; }
        public string Message { get; set; } = string.Empty;
    }
    
    public class TitleInfoDto
    {
        public string Title { get; set; } = string.Empty;
        public int RequiredLevel { get; set; }
        public bool IsUnlocked { get; set; }
        public string Description { get; set; } = string.Empty;
    }
}
